from __future__ import annotations


class MailerException(Exception):
    """Base exception for all mailer errors"""
    pass


class SMTPConnectionError(MailerException):
    """Failed to connect to SMTP server"""
    pass


class SMTPAuthenticationError(MailerException):
    """SMTP authentication failed"""
    pass


class SMTPSendError(MailerException):
    """Failed to send email via SMTP"""
    pass


class RateLimitExceededError(MailerException):
    """Rate limit quota exceeded"""
    pass


class InvalidEmailError(MailerException):
    """Email address validation failed"""
    pass


class PayloadValidationError(MailerException):
    """Email payload validation failed"""
    pass
